解决方案 您所在的位置:网站首页 adb createprocess error=2 解决方案

解决方案

2023-04-02 02:14| 来源: 网络整理| 查看: 265

解决方案--java执行cmd命令ProcessBuilder--出错Exception in thread "main" java.io.IOException: Cannot run program "dir d:\": CreateProcess error=2(xjl456852原创) 当我尝试在java中通过ProcessBuilder运行window的cmd命令时出现错误:public static void main(String [] args) throws IOException { ProcessBuilder builder = new ProcessBuilder(); Process process = builder.command("dir d:\\").start(); InputStream inputStream = process.getInputStream(); BufferedReader br = new BufferedReader(new InputStreamReader(inputStream,"gb2312")); String line = null; while((line = br.readLine()) != null) { System.out.println(line); }}出错如下:Exception in thread "main" java.io.IOException: Cannot run program "dir d:\": CreateProcess error=2, 系统找不到指定的文件。 at java.lang.ProcessBuilder.start(ProcessBuilder.java:1047) at com.xjl456852.processBuilder.ProcessBuilderTest.main(ProcessBuilderTest.java:25) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144)Caused by: java.io.IOException: CreateProcess error=2, 系统找不到指定的文件。 at java.lang.ProcessImpl.create(Native Method) at java.lang.ProcessImpl.(ProcessImpl.java:385) at java.lang.ProcessImpl.start(ProcessImpl.java:136) at java.lang.ProcessBuilder.start(ProcessBuilder.java:1028) ... 6 more即使我把第三行语句改为下面的,仍然出错Process process = builder.command("cmd.exe /c dir d:\\").start();后来我看许多人都遇到这种情况,但是没有人说解决方案的,有人就直接放弃了:所以我又试了各种方式,终于解决了这个问题,这两种方案执行都没有问题.提供给遇到这种问题的朋友一种参考方法一:public static void main(String [] args) throws IOException { ProcessBuilder builder = new ProcessBuilder(); List list = new ArrayList(); list.add("cmd.exe"); list.add("/c"); list.add("dir"); list.add("d:\\"); Process process = builder.command(list).start(); InputStream inputStream = process.getInputStream(); BufferedReader br = new BufferedReader(new InputStreamReader(inputStream,"gb2312")); String line = null; while((line = br.readLine()) != null) { System.out.println(line); }}方法二:public static void main(String [] args) throws IOException { ProcessBuilder builder = new ProcessBuilder(); Runtime runtime = Runtime.getRuntime(); Process process = runtime.exec("cmd.exe /c dir d:\\"); InputStream inputStream = process.getInputStream(); BufferedReader br = new BufferedReader(new InputStreamReader(inputStream,"gb2312")); String line = null; while((line = br.readLine()) != null) { System.out.println(line); }}

posted on 2016-09-04 17:03  三杯两盏淡酒  阅读(20214)  评论(5)  编辑  收藏  举报



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有